{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": false,
    "jupyter": {
     "outputs_hidden": false
    }
   },
   "outputs": [],
   "source": [
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "\n",
    "# Curve fitting\n",
    "\n",
    "\n",
    "Demos a simple curve fitting\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "First generate some data\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": false,
    "jupyter": {
     "outputs_hidden": false
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.collections.PathCollection at 0x7fb396495700>"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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N954I+ihGsHr47lgwQJJ0tDQkNasWaO7775br7/+uioqyMZeXL58Wddff73effddbdy4cer2xx9/XF999ZX27dsX3eAMt3XrVu3bt09//vOf1djYGPVwjPX+++/roYceUmVl5dRtuVxOjuOooqJCExMT034GwoARvvjiC2Wz2anvh4aGtH79er377rtatWqVli5dGuHozDQ4OKh77rlHd9xxh3p6evjDUKZVq1aptbVVu3fvljRZ2l62bJm2bt2qHTt2RDw687iuq6eeekrvvfeePvroI91yyy1RD8lo4+Pj+vvf/z7tts2bN2vFihXavn070y+zYM2AAZYtWzbt+xtvvFGS1NTURBCYh8HBQa1Zs0bf/e53tWvXLo2Ojk79LJ1ORzgyc2zbtk2PP/647rzzTrW2tuqll17SxYsXtXnz5qiHZqSOjg699dZb2rdvn2pqajQyMiJJSqVSuu666yIenXlqampmvOHfcMMNqqurIwjMgTAA6xw8eFCnTp3SqVOnZoQpCmXePProoxodHdVzzz2nkZERrVy5UgcOHJixqBDe7NmzR5K0Zs2aabe/9tpreuKJJ8IfEKzDNAEAAJZjxRQAAJYjDAAAYDnCAAAAliMMAABgOcIAAACWIwwAAGA5wgAAAJYjDAAAYDnCAAAAliMMAABgOcIAAACW+38BJI1KjJs/bwAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 600x400 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import numpy as np\n",
    "\n",
    "# Seed the random number generator for reproducibility\n",
    "np.random.seed(0)\n",
    "\n",
    "x_data = np.linspace(-5, 5, num=50)\n",
    "y_data = 2.9 * np.sin(1.5 * x_data) + np.random.normal(size=50)\n",
    "\n",
    "# And plot it\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "plt.figure(figsize=(6, 4))\n",
    "plt.scatter(x_data, y_data)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now fit a simple sine function to the data\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": false,
    "jupyter": {
     "outputs_hidden": false
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[3.05931973 1.45754553]\n"
     ]
    }
   ],
   "source": [
    "from scipy import optimize\n",
    "\n",
    "def test_func(x, a, b):\n",
    "    return a * np.sin(b * x)\n",
    "\n",
    "params, params_covariance = optimize.curve_fit(test_func, x_data, y_data,\n",
    "                                               p0=[2, 2])\n",
    "\n",
    "print(params)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "And plot the resulting curve on the data\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": false,
    "jupyter": {
     "outputs_hidden": false
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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J7pu+fLlyMjIwLZt26QeisPKy8vD448/jg8//BAeHh5SD8chsDeBhEpLS1FeXt7lMf3798c999yD3bt3QxAE0+M6nQ5qtRqLFy/G+++/b+uhOgRz/55ubm4AgIKCAsyYMQMTJ07Eli1boFIxNjZHY2MjvLy88Omnn+L22283Pf7www+jsrISO3fulG5wDm7FihXYuXMnDh8+jNjYWKmH47C++OIL3HHHHVCr1abHdDodBEGASqVCQ0NDm58RgwGHkJubi6qqKtP3BQUFmDdvHj799FNMmDABkZGREo7OMeXn52PmzJkYM2YMtm7dyg8GC02YMAHjx4/Hhg0bABimtqOjo7FixQo8++yzEo/O8YiiiN///vf4/PPP8e2332LgwIFSD8mhVVdX4/Lly20eW7p0KeLj47Fy5UqmXzrANQMOIDo6us33Pj4+AIC4uDgGAj2Qn5+PGTNmoF+/fli3bh1KS0tNPwsNDZVwZI7jySefxMMPP4yxY8di/PjxWL9+PWpra7F06VKph+aQli9fjo8++gg7d+6Er68vioqKAAAajQaenp4Sj87x+Pr6trvge3t7IzAwkIFAJxgMkOLs378fWVlZyMrKahdMcaLMPPfeey9KS0vxl7/8BUVFRRg5ciSSk5PbLSok82zcuBEAMGPGjDaPb968GUuWLLH/gEhxmCYgIiJSOK6YIiIiUjgGA0RERArHYICIiEjhGAwQEREpHIMBIiIihWMwQEREpHAMBoiIiBSOwQAREZHCMRggIiJSOAYDRERECsdggIiISOH+P0bEwppdlAOhAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 600x400 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(6, 4))\n",
    "plt.scatter(x_data, y_data, label='Data')\n",
    "plt.plot(x_data, test_func(x_data, params[0], params[1]),\n",
    "         label='Fitted function')\n",
    "\n",
    "plt.legend(loc='best')\n",
    "\n",
    "plt.show()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.12"
  },
  "vscode": {
   "interpreter": {
    "hash": "e82bdbec295f1d416caad911bfe8299822751c36b2e078ad810889afff869327"
   }
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
